"""
魔法方法：
    概述：
        魔法方法也叫魔术方法，是Python类中的的一些内置方法
    特点：
        不需要调用，会在合适的时机自动调用
        这些方法都是以 __方法__ 命名的
        方法名都是Python定义好的，在合适的时机会地洞调用
"""
class Student:

    # 在对象创建的时候，会自动调用这个方法，这也叫构造函数
    def __init__(self,name,age,height,weight,sex,address):
        print('--init--执行了')
        self.name = name  #成员属性
        self.age = age
        self.height = height
        self.weight = weight
        self.sex = sex
        self.address = address

    # def __str__(self):
    #     return (f'Student = (name={self.name},'
    #             f'age={self.age},height={self.height},'
    #             f'weight={self.weight},sex={self.sex},address={self.address})')

    def __repr__(self):
        # return self.__str__()
        return (f'Student = (name={self.name},'
                f'age={self.age},height={self.height},'
                f'weight={self.weight},sex={self.sex},address={self.address})')


    def eat(self): # 成员方法
        print(f'我叫{self.name},我爱吃饭')


if __name__ == '__main__':
    s1 = Student('聂茹凤',18,168,45,'女','北京市西城区')
    # s1.eat()
    # print(s1.name)
    print(s1)

    # s2 = Student('谭新宇', 18, 178, 65, '女', '北京市海淀区')
    # s3 = Student('韩耀祖', 20, 188, 55, '男', '北京市东城区')
    # s4 = Student('李腾', 19, 158, 75, '男', '北京市朝阳区')
    # s5 = Student('曹鹏', 22, 148, 35, '男', '北京市通州区')
    #
    # list1 = [s1,s2,s3,s4,s5]
    #
    # print(list1)